package leetcode;

import java.util.HashMap;
import java.util.Stack;

public class StockSpanner {
    HashMap<Integer,Integer> map;
    Stack<Integer> stack;
    public StockSpanner() {
        map=new HashMap<>();
        stack=new Stack<>();
        stack.push(Integer.MAX_VALUE);
    }
    public int next(int price) {
        int count=1;
        while(price>=stack.peek()){
            count+=map.get(stack.peek());
            stack.pop();
        }
        stack.push(price);
        map.put(price,count);
        return count;
    }
}
//    HashMap<Integer,Integer> map;
//    Stack<Integer> stack;
//    public StockSpanner() {
//        map=new HashMap<>();
//        stack=new Stack<>();
//        stack.push(Integer.MAX_VALUE); // 哨兵 永远在栈中
//    }
//
//    public int next(int price) {
//        int count=1;
//        while(price>=stack.peek()){
//            count+=map.get(stack.peek());取得此时price在栈中所映射的值value；
//            stack.pop();pop是删除栈顶元素；
//
//        }
//        stack.push(price);
//        map.put(price,count);
//        return count;
//    }